¡Bienvenidos al documento de análisis de accidentalidad en la ciudad de Barranquilla! Aquí encontrarán información detallada sobre la cantidad de accidentes por año, los días de la semana con mayor incidencia, el porcentaje de accidentes según su gravedad, el número de accidentes por clase y gravedad, así como la cantidad de accidentes por meses y días de la semana. ¡Comencemos a explorar los datos y descubrir patrones importantes para mejorar la seguridad vial!

library(tidyverse)
library(plotly)
library(janitor)
library(zoo)
library(hrbrthemes)

Datos

Acci_Barranquilla <- read_delim("Accidentalidad_en_Barranquilla.csv",delim = ";", 
                             escape_double = FALSE, trim_ws = TRUE) %>% clean_names() %>%
mutate(dia_accidente = ifelse (dia_accidente == "Lun", "Lunes", dia_accidente),
                            dia_accidente = ifelse(dia_accidente == "Mar", "Martes", dia_accidente),
                            dia_accidente = ifelse(dia_accidente == "Mié", "Miercoles", dia_accidente),
                           dia_accidente = ifelse(dia_accidente == "Jue", "Jueves", dia_accidente),
                           dia_accidente = ifelse(dia_accidente == "Vie", "Viernes", dia_accidente),
                           dia_accidente = ifelse(dia_accidente == "Sáb", "Sabado", dia_accidente),
                           dia_accidente = ifelse(dia_accidente == "Dom", "Domingo", dia_accidente))
Acci_Barranquilla

Accidentes desde 2015 - 2023

accidentes_año <- Acci_Barranquilla %>% select(ano_accidente, gravedad_accidente, clase_accidente) %>% 
                                 group_by(ano_accidente) %>% 
                                 summarise(cantidad_accidentes = n())

acc_año_g <- ggplot(accidentes_año, aes(x = ano_accidente, y = cantidad_accidentes))+
                    geom_line(color="deepskyblue3")+
                    geom_point(shape=21, color="white", fill="deepskyblue3", size=3) +
                    theme_ipsum() +
                    ggtitle("Accidentes 2015 - 2023")+
                    xlab("Años")+
                    ylab("Cantidad de Accidentes")

ggplotly(acc_año_g)

Porcentaje de la gravedad de los accidentes

heridos <- Acci_Barranquilla %>% select(gravedad_accidente) %>% 
  group_by(gravedad_accidente) %>% 
  summarise(cantidad = n(), porcentaje = (cantidad/43205 * 100))

heridos_g <- ggplot(heridos, aes(x = "", y = porcentaje , fill = gravedad_accidente))+
  geom_bar(stat = "identity", color = "white")+
  theme_ipsum()


ggplotly(heridos_g)

Nuemero de accidentes por gravedad en los años

num_heridos_año <- Acci_Barranquilla %>% select(ano_accidente, gravedad_accidente) %>% 
                                         group_by(ano_accidente, gravedad_accidente) %>% 
                                         summarise( n = n())

acc_her_año_g <- ggplot(num_heridos_año, aes(x = ano_accidente, y = n , color = gravedad_accidente))+
  geom_line()+
  geom_point()+
  theme_ipsum()
ggplotly(acc_her_año_g)

Numero de accidentes por clase desde 2015

num_clase_año <- Acci_Barranquilla %>% select(ano_accidente, clase_accidente) %>% 
  group_by(ano_accidente, clase_accidente) %>% 
  summarise( n = n())

acc_clase_año_g <- ggplot(num_clase_año, aes(x = ano_accidente, y = n , color = clase_accidente))+
  geom_line()+
  geom_point()+
  theme_ipsum()

ggplotly(acc_clase_año_g)

Cantidad de accidentes por mes del año 2022

can_acc_mes_22 <- Acci_Barranquilla %>% 
                  select(ano_accidente, mes_accidente) %>%
                  group_by(ano_accidente, mes_accidente) %>% 
                  summarise(cantidad = n()) %>% 
                  filter(ano_accidente == 2022) %>% 
                  arrange(mes_accidente)
#ordenar meses del año
can_acc_mes_22$mes_accidente <- factor(can_acc_mes_22$mes_accidente, levels = c("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre")) 

can_acc_mes_22_g <- ggplot(can_acc_mes_22, aes( x = mes_accidente, y = cantidad, fill = mes_accidente))+
  geom_bar(stat = "identity", width=0.5)+
  theme(legend.position="none")+
  theme_ipsum() +
  theme(
    panel.grid.minor.x = element_blank(),
    panel.grid.major.x = element_blank(),
    legend.position="none",
    axis.text.x = element_text(angle = 80, hjust=1))+
  xlab("")+
  ylab("Cantidad")

ggplotly(can_acc_mes_22_g)

Numero de accidentes por dias de la semana

acc_sem <- Acci_Barranquilla %>% select(ano_accidente, dia_accidente) %>% 
                                 group_by(dia_accidente) %>% 
                                 summarise( cantidad = n()) 

acc_sem$dia_accidente <- factor(acc_sem$dia_accidente, levels = c("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"))

acc_sem_g <- ggplot(acc_sem, aes(x = dia_accidente, y = cantidad , fill = dia_accidente))+
                      geom_bar(stat = "identity", width=0.5)+
  theme(legend.position="none")+
  theme_ipsum()+
  theme(
    panel.grid.minor.x = element_blank(),
    panel.grid.major.x = element_blank(),
    legend.position="none")+
  xlab("")+
  ylab("Cantidad")+
  coord_flip()

ggplotly(acc_sem_g)

Numero de accidentes en dias de la semana por año(desde el año 2015 - 2023)

acc_sem_año <- Acci_Barranquilla %>% select(ano_accidente, dia_accidente) %>% 
  group_by(ano_accidente, dia_accidente) %>% 
  summarise( cantidad = n())
#ordenar los dias de la semana
acc_sem_año$dia_accidente <- factor(acc_sem_año$dia_accidente, levels = c("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo")) 

acc_sem_año_g <- ggplot(acc_sem_año, aes(x = ano_accidente, y = cantidad , color = dia_accidente))+
  geom_line()+
  geom_point()+
  theme_ipsum()+
  ylab("")+
  xlab("Año")
  #facet_wrap(~dia_accidente, scale="free_y")

ggplotly(acc_sem_año_g)